[Elastic Beanstalk] 時間に基づくオートスケールを試してみた
はじめに
AWSチームのすずきです。
毎日特定時間帯のアクセス数が増加するElasticBeanstalk管理化のWebサイトに対して、 時間に基づくEC2インスタンスのスケーリング設定を施す機会がありましたので、その内容を紹介します。
参考資料
Elastic Beanstalk で Auto Scaling を設定する
設定
設定画面
- AWSコンソールより、オートスケール設定対象となるeb環境の設定画面を開きます。
- 「スケーリング」の設定を開きます。
- 時間に基づくスケーリングをより「スケジュールされたアクションの追加」を開きます。
拡張登録
- 日中オンタイム、スケールアウトの開始設定を指定します。
- 該当AWSアカウント、リージョン内で重複しない、英数字で名前を付与します。(記号文字は使えません)
- 頻度は「繰り返し」を指定します。
- 日時ジョブで、UTC時間で2時5分、日本時間11時5分に起動する指定とします。
- 開始時刻は空にします。
縮小登録
- オフタイム、スケールインの開始設定を指定します。
- 頻度は「繰り返し」を指定します。
- 日時ジョブで、UTC時間で13時0分、日本時間22時0分に起動する指定とします。
- 稼働時間11時間55分とする事で、12時間でEC2課金が止まる事を期待します。
設定反映
- スケジュール登録画面を閉じます。
- 意図したスケジュール設定反映された事を確認し、「適用」を実施します。
- 1分程度で環境設定が完了します。
結果
- eb管理化のEC2台数、日中4台、深夜早朝は2台で稼働するようになりました。今回、4台のインスタンスを常時稼働させた場合と比較し、 約25%のEC2費用削減が実現できました。
- リクエスト数とEC2台数を重ねたグラフは以下のとおりです。
- キャンペーンなどで予め多くのアクセス集中が予想される場合、都度実行のスケジュール登録によりより大きな性能変更にも対応可能です。
まとめ
オートスケールを簡単に設定でき、柔軟な管理が実現出来る様になるElasticBeanstalk、是非一度お試しください。